home *** CD-ROM | disk | FTP | other *** search
/ The 640 MEG Shareware Studio 2 / The 640 Meg Shareware Studio CD-ROM Volume II (Data Express)(1993).ISO / clang / cxl52_1.zip / HISTORY.DOC < prev    next >
Text File  |  1990-02-17  |  17KB  |  320 lines

  1.  
  2.                            ------------------------
  3.                              CXL Revision History
  4.                            ------------------------
  5.  
  6.  
  7. Version 5.2 - February 17, 1990
  8.  
  9.     o   Minor enhancements and problem fixes:
  10.         -   The wpickfile() function now returns back to current drive and
  11.             directory before letting the user pick a file.  Also,
  12.             wpickfile() now will return W_INVPATH if an invalid path name is
  13.             given in the input filespec.
  14.         -   The wpickfile() function would erroneously return W_NOMATCH
  15.             error in a subdirectory with no files.  Thanks to Jack Kilday.
  16.         -   The help system would used hard-coded single-line border
  17.             characters for the PgUp/PgDn indicator when it should have been
  18.             dependent on the help window's box type.  Thanks to Rich Winter.
  19.         -   getxch() was improperly handling Ctrl-Break.  Thanks to Vic
  20.             Baron.
  21.         -   The cvtfc() function could overwrite the receiving buffer given
  22.             it.  Thanks to Rich Winter.
  23.         -   The MSC version of biosver() behaved erratically.  Thanks to Ray
  24.             MacHardy.
  25.         -   The setlines() function would not allow EGA and VGA monochrome
  26.             displays to go into 50-line mode.  Thanks to Tom Debruycker.
  27.         -   wpickfile() had a bug to where it could display "*.*" as the
  28.             filespec even if it was different.  Thanks to John Wagner.
  29.         -   If Escape checking was turned off, and user was in help screen
  30.             with cross-references, (s)he wouldn't be able to exit help.
  31.             Thanks to Richard Diaz.
  32.         -   The strschg() and strischg() functions could cause a lock-up
  33.             when certain strings were used.  Thanks to Larry Gibbs.
  34.         -   The wputc() and wputs() functions wouldn't properly handle
  35.             the backspace character when at window row 0, column 0.
  36.         -   Certain scan codes returned by scancode() weren't appropriate
  37.             for the type of character given it.  Thanks to Michael Burton.
  38.  
  39.  
  40. Version 5.1 - September 1, 1989
  41.  
  42.     o   Extended keyboard support for data entry functions.  Allows you
  43.         to extend and/or remap the keyboard during processing of data entry
  44.         forms.
  45.  
  46.     o   Extended the help system.  You can now specify help window size and
  47.         placement.  The "*P" and "*E" markers in help files can now be
  48.         trailed by whitespace and/or other ASCII characters. You can now
  49.         move between help cross-reference items by pressing the first
  50.         character of the help category you want to move to.  You can now
  51.         push an empty help category (0) onto the help category stack.
  52.  
  53.     o   Improved mouse support in arrow-key emulation mode.
  54.  
  55.     o   Complete CGA snow elimination (rather than just snow reduction) and
  56.         increased CGA display output speed.
  57.  
  58.     o   Improved menuing system.  The menuing functions now handle menus
  59.         with two or more menu items having the same selection character
  60.         better.  You can now close a menu's window before calling an item's
  61.         selection function (not just after).  The taginit value given in the
  62.         wmenuend() function MUST now match a tagid of one of that menu's
  63.         items.  When menu item text descriptions are displayed, they
  64.         automatically clear to the end-of-line (so you don't need to pad
  65.         text desriptions with spaces).  Added a few functions to make
  66.         accessing CXL's menu data structures easier.
  67.  
  68.     o   Improved data entry.  Data entry fields are now processed in their
  69.         definition order rather than automatically left-to-right.  The Up
  70.         and Down arrow keys are now "smarter".
  71.  
  72.     o   Enhanced list picking functions.  By popular demand, the wpickstr()
  73.         and wselstr() functions have had an additional parameter, initelem,
  74.         added to allow specifying the initial position of the selection bar.
  75.         The wpickfile() function now displays subdirectories even when they
  76.         don't match the input filespec.
  77.  
  78.     o   Enhanced the menuing and list picking functions for better operation
  79.         under DESQview.
  80.  
  81.     o   The string trimming functions, strltrim() and strtrim() now trim
  82.         whitespace as well as normal spaces.
  83.  
  84.     o   The wprints() function no longer supports word-wrap.  Use wputs(),
  85.         wprintf(), or another TTY-style window output function instead.
  86.  
  87.     o   The getchf() and wgetchf() functions now disregard the case of
  88.         input letters.  This means instead of having to use "YyNn" for the
  89.         valid choice string, you can use just "YN".
  90.  
  91.     o   Several problem fixes.  These include:
  92.         -   In the MSC version, when specifying a drive in the input
  93.             filespec to wpickfile(), it would use that drive letter - 1.
  94.             Thanks to Larry Wasserman.
  95.         -   In the ZTC version, the striinc() and strmatch() functions
  96.             referenced a strnicmp() function, which is not in the standard
  97.             ZTC library and would cause an unresolved reference linker
  98.             error.  This in-turn affected stridel(), strisocc(), and
  99.             strisrep().  Thanks to Larry Marshall.
  100.         -   The strtrim() function could still trim past the start of the
  101.             string if the string was all spaces.  Thanks to Mike Davenport.
  102.         -   The hidecur() function didn't hide the cursor with certain EGA
  103.             video adapters.  Thanks to Ted Roberts.
  104.         -   In winpread(), a mode 2 field wouldn't work as expected if the
  105.             previous field was completely filled.  Thanks to Mike Davenport.
  106.         -   The wmessage() function didn't accurately perform bounds
  107.             checking to make sure that the message would fit in the window.
  108.         -   The wwprints() function didn't translate monochrome attributes
  109.             properly.  Thanks to Bruce Rosner.
  110.         -   The whline() and wvline() functions didn't properly handle count
  111.             values of 0 or 1 properly.  Thanks to Glenn McDonald.
  112.         -   The wpickfile() function could stay in the wrong directory if it
  113.             aborted with a W_NOMATCH error.  Thanks to Joe McLain.
  114.         -   The wpickfile() function could possibly malfunction if used with
  115.             directories that had an extension.  Thanks to Rik Faith.
  116.         -   The _vinfo.dvexist variable was being set to 1 whether or not
  117.             DESQview was actually loaded.  Thanks to Eric Cockrell.
  118.         -   The wmenuicurr() macro-function would not return the correct
  119.             menu item record during the menu item's "before" function.
  120.             Thanks to Tim Ottinger.
  121.         -   The multi-field data entry functions would display the last
  122.             field in the wrong color if its validation function returned
  123.             error. Thanks to Eric Irwin.
  124.         -   Pulldown menu bars could not have 2 submenu-less items in a row.
  125.             Thanks to Daniel Miller.
  126.         -   The 'F' and 'W' format control characters should have allowed a
  127.             colon ':', but didn't.
  128.         -   The cvtfc() function was rounding fractional portion where it
  129.             should have been truncating.
  130.  
  131.     o   Added several new functions.  See CXL.DOC for descriptions.
  132.             cgardbyte()     cgardword()     cgareadn()      cgawrbyte()
  133.             cgawriten()     cgawrstr()      cgawrword()     chgonkey()
  134.             freonkey()      setvparam()     strbtrim()      strdela()
  135.             stridela()      strischg()      strschg()       vidmode()
  136.             wbprintc()      wdrag()         wgetyn()        whelppcat()
  137.             whelpundef()    whelpwin()      winpkey()       wmenuidsab()
  138.             wmenuienab()    wmenuinext()    wslide()        wunlink()
  139.  
  140.     o   The CXL library is no longer available for Power C.  Power C's lack
  141.         of conformance to the Microsoft .OBJ format has become too difficult
  142.         to support.  CXL version 5.0 will still be shipped to those
  143.         requesting a Power C version.
  144.  
  145.  
  146. Version 5.0 - March 27, 1989
  147.  
  148.     o   Complete context-sensitive help system.  Help information can
  149.         contain multiple pages of help text per category and can be
  150.         cross-referenced for flexibility and indexed for speed.
  151.  
  152.     o   Shadowed windows.  Windows can now have shadows.  These shadows can
  153.         be translucent so that they show the characters underneath.
  154.  
  155.     o   The menuing functions have been significantly enhanced.  Individual
  156.         menu items can have sub-menus and/or functions tied into them.
  157.         Pull-down and other multi-level menus are much easier to create.
  158.         Individual menu selections can also be defined as nonselectable.
  159.         Menu items can also have global hot keys.  Menu items can have
  160.         "before" and "after" functions.  Mouse support in menus has been
  161.         expanded.
  162.  
  163.     o   The multi-field input functions have been significantly enhanced.
  164.         They now properly support numeric data entry.  Also, the behavior of
  165.         several of the editing keys has been enhanced.  A conditional update
  166.         mode has been added.  Input fields can have "before" and "after"
  167.         functions.  True Insert mode has been added.
  168.  
  169.     o   Scrolling bar string picker allows you to create variable-sized
  170.         "menus" of strings to pick from.  Features mouse support including
  171.         scroll bars.
  172.  
  173.     o   File picker with same features as string picker.  Allows movement
  174.         between directories.  Similar to the file pickers included in the
  175.         Turbo C and QuickC environments.
  176.  
  177.     o   The window TTY output string functions, such as wputs() and
  178.         wprintf(), are now able to change colors, set cursor coordinates,
  179.         and erase part or all of the window, using CXL's new window Escape
  180.         sequences.  These are similar to ANSI Escape sequences, but are much
  181.         faster.
  182.  
  183.     o   You are now able to write to blocked and hidden windows.
  184.  
  185.     o   Automatic monochrome attribute translation.  By default, if a
  186.         monochrome adapter is detected by videoinit(), all color attributes
  187.         will be mapped to their monochrome equivalents.  This can be
  188.         overridden via a switch.
  189.  
  190.     o   CGA snow reduction has been put back into CXL.  This is selectable
  191.         via a global variable.  Thanks to Patrick Bennett and Larry Kruse.
  192.  
  193.     o   All video functions now work properly in nonstandard text modes
  194.         such as 132x80 and 120x43.
  195.  
  196.     o   The video adapter identifiers (CGA, EGA, etc.) are now prefixed with
  197.         a "V_" to avoid conflicts with Borland's BGI definitions.  Also, a
  198.         few new video adapter identifiers were added.
  199.  
  200.     o   There are now 4 different types of mouse support provided including
  201.         a point-and-shoot mouse cursor as well as arrow-key emulation.
  202.  
  203.     o   Mouse functions have been modified to use actual row and column
  204.         cursor coordinates rather than X and Y pixel coordinates.  This
  205.         makes working with the mouse cursor much easier.
  206.  
  207.     o   Internal keyboard buffer and support functions.  This allows you to
  208.         create keyboard scripts, force user input, etc., by "stuffing"
  209.         keystrokes into CXL's internal keyboard buffer.
  210.  
  211.     o   File encryption and decryption.  Allows fast encryption and
  212.         decryption of text and binary files.  Thanks to Bob Stout.
  213.  
  214.     o   Problems fixed.
  215.         -   The video functions were working under DESQview on some
  216.             machines, but not others.  Thanks to Jim Nutt.
  217.         -   The setlines() function was not returning to 25-line mode from
  218.             VGA 50-line mode properly.  Thanks to Larry Kruse.
  219.         -   The wunhide() function was unhiding the most recently hidden
  220.             window, regardless of the given window handle.  Thanks to Joshua
  221.             Stern.
  222.         -   The strtrim() function could trim past the start of the string
  223.             if the string was all spaces.  Thanks to Curt Grimley.
  224.         -   The whline() function would not function properly when drawing
  225.             on window row 0 of a borderless window starting on screen row 0.
  226.             Thanks to Ted Roberts.
  227.         -   A certain error condition in wopen() could cause it to return
  228.             without restoring memory it allocated.  Thanks to Nelson
  229.             Chenkin.
  230.         -   The tab character, when used in window TTY output functions, was
  231.             advancing the cursor to the next tab column offset from the
  232.             screen, not from window column 0.
  233.         -   In the systime() function, time codes 2 thru 4 would cause a
  234.             return of "00" for hour during the midnight hour.  Now they
  235.             return "12".
  236.  
  237.     o   New functions.  See CXL.DOC for descriptions.
  238.             cclrscrn()      cvtcf()         cvtci()         cvtfc()
  239.             cvtic()         cxlver()        fcrypt()        getcursz()
  240.             hidecur()       kbclear()       kbmhit()        kbput()
  241.             kbputs()        lgcursor()      mapattr()       msbclear()
  242.             mscondoff()     mssupport()     randfile()      revsattr()
  243.             scancode()      showcur()       smcursor()      strchksum()
  244.             strichksum()    strisocc()      strisrep()      strljust()
  245.             strrjust()      strsocc()       strsrep()       wchkbox()
  246.             wchkcol()       wchkcoord()     wchkrow()       wdump()
  247.             wdups()         wfillch()       whelpcat()      whelpclr()
  248.             whelpdef()      whelpop()       whelpopc()      whelpush()
  249.             whelpushc()     windowat()      windump()       winpbeg()
  250.             winpfba()       winpfcurr()     winpffind()     wmenubeg()
  251.             wmenubegc()     wmenuend()      wmenuiba()      wmenuicurr()
  252.             wmenuifind()    wmenuitem()     wmenuitxt()     wmenumcurr()
  253.             wpickfile()     wpickstr()      wprintsf()      wputsw()
  254.             wscrollbox()    wselstr()       wshadoff()      wshadow()
  255.             wtabwidth()     wwprints()
  256.  
  257.     o   Modified functions.  See CXL.DOC for descriptions.
  258.             msbpress()      msbreles()      msgotoxy()      mshbounds()
  259.             msmotion()      msstatus()      msvbounds()     setonkey()
  260.             strins()        strsetsz()      videoinit()     whline()
  261.             winpdef()       wmenuget()      wtitle()        wunhide()
  262.             wvline()
  263.  
  264.     o   Deleted functions.  The string selection functions, wsseldef() and
  265.         wsselget(), were deleted because their operation can now be emulated
  266.         using the new wselstr() function.  The wsbounds() function was
  267.         deleted because the new wscrollbox() function allows you to scroll
  268.         specific regions of the window.
  269.  
  270.     o   There are several new global variables, so to avoid possible name
  271.         conflicts, and to organize them better, I grouped the old and new
  272.         globals under new structure-type global variables.  See CXL.DOC for
  273.         descriptions of these new structure-type global variables.
  274.             struct _kbinfo contains _kbloop, _kbuf, and _onkey.
  275.             struct _vinfo  contains _dvcheck, _vbios, and _videoseg.
  276.             struct _winfo  contains _werrno, _wesc, _whandle, _whrec,
  277.                                     _wrec, and _wtotal.
  278.  
  279.  
  280. Version 4.1 - September 4, 1988
  281.  
  282.     o   Support for Mix Power C has been added.
  283.  
  284.     o   Complete BIOS video support has been added.  This will also serve
  285.         as a temporary solution to the problem with the CGA snow reduction
  286.         in CXL 4.0.
  287.  
  288.     o   The window hiding/unhiding functions are now high level (use
  289.         handles, not pointers).  This makes the hiding and unhiding of
  290.         windows much easier.
  291.  
  292.     o   The internal mouse support has been enhanced.  Mouse movement is
  293.         smoother and there are no longer mouse "boundaries".  Mouse button
  294.         presses can no longer be queued.
  295.  
  296.     o   Problems fixed.
  297.         -   Menuing and data entry functions weren't being properly
  298.             supported on single line borderless windows.  Thanks to Mark
  299.             Hall.
  300.         -   The setkbloop() function was not working properly on systems
  301.             without a mouse because of a bug in getxch().
  302.         -   In sysdate(), date codes 3 & 4 were returning the same result.
  303.             Thanks to Michael Hackman.
  304.         -   In systime(), time codes 2 & 3, the AM/PM indicator was not
  305.             being changed from AM to PM until 1:00 PM.  Thanks to John
  306.             Metzker.
  307.  
  308.     o   Modified functions.  See CXL.DOC for descriptions.
  309.             cvaltype()      whide()         wunhide()
  310.  
  311.     o   Deleted functions.  These functions were deleted because their roles
  312.         have been assumed by other functions.
  313.             boxd()          filld()         printcd()       printsd()
  314.  
  315.  
  316. Version 4.0 - July 27, 1988
  317.  
  318.     Initial release of CXL.
  319.  
  320.